Current computing applications are largely single user systems. For example, conventional editing applications allow a single user to open a file and make modifications to the content. In most cases, a file is considered an atomic unit which is not sharable. While the file is open by a first user, a second user will be prevented from opening or modifying the file. The second user is sometimes permitted to obtain a snapshot copy of the file. The snapshot copy, however, is not updated with any of the subsequent modifications made to the original copy made by the first user. Thus, the second user is unable to share in the first user's ideas manifested as file modifications. Moreover, while the file is open, the second user is prevented from modifying the content of the original file and, thus, is prevented from sharing his or her ideas manifested as file modifications. In short, the first and second user are unable to collaborate.
For example, there are many conventional word processing programs available which allow a single author to create and edit a word processing document which may contain text and embedded graphics. However, with most of these programs, the word processing document itself is not shareable. When one user has the document open and is actively editing it, another user cannot simultaneously open the same document and edit it. Typically, the second user can only make a copy of the document for editing purposes. Consequently, it is common practice to "circulate" an electronic word processing document to several editors who then make their edits on a single copy of the document. With electronic computer networks, it is easy to circulate the document among the editors. However, the original author of the document maintains little control over the marked-up copy. Editors may delete insertions made by other editors or make other changes in an uncontrolled fashion.
Alternatively, the original author can simultaneously send separate copies of the original document to each of the editors. The editors then edit their own copy individually and return the marked up copy to the author. However, after the edits are made, the task then remains to reconcile the multiple marked-up copies. This task can often be a time consuming and manual process of comparing the documents in order to locate the changes made by each editor and compare the changes with the original.
Still other collaborative word processing systems utilize a single document or a copy of a single document and allow a number of users to simultaneously "view" and edit the document such that changes made by one editor are immediately viewed by others. Such a collaborative word processor requires that all reviewers be simultaneously present to view the document and the changes made by each editor. In addition, the document view seen by all editors is the same portion of the document and, therefore, it is not possible for one editor to work on one portion of the document while the remaining editors are working on a different portion of the document. Consequently, these systems, while truly collaborative, are not efficient in the use of editor's time.
There is a need in the art for collaborative editing software. More particularly, there is a need for document editing software which makes efficient use of editor's time, yet allows rapid consolidation of the edits into a single final document.